#字符集
#ASCII-->Latin 1-->Unicode编码
print(ord('a')) #97
print(chr(65))  #A

print(ord('你'))#20320
print(ord('我'))#25105
print(ord('爱'))#29233
#这里是Unicode编码哦
print(chr(25105),chr(29233),chr(20320))

#编码集
#GBK    国标扩     汉字占两个字节     简体中文    也就是GB2312
#BIG5   繁体中文
#utf-8  统一编码   汉字占三个字节

#使用encode字符串转换成指定编码集结果
print('你'.encode('gbk'))    #b'\xc4\xe3'        50403   11000100 11100011
print('你'.encode('utf8'))   #b'\xe4\xbd\xa0'            11100100 10111101   10100000


#in 和 not in    成员运算符
'''
#用来判断一个内容在可迭代对象里是否存在
if x in word:
    print('存在')
else:
    print('不存在')
'''

#格式化打印字符串
name = '张三'
age = 18
print('大家好，我的名字是',name,'今年',age,'岁了',sep='')
print('大家好，我的名字是%s,我今年%d岁了，我今天挣了%f元钱'%(name,age,3.14))
#基本和C语言一样
a = 255
print('%x' % a) #ff

#format
#{}也可以进行占位
#{}里面什么都不写，会直接读取后面的内容，一一对应填充
x = '大家好，我是{}，我今年{}岁了'.format('张三',18)
print(x)

#{数字}根据数字的顺序来进行填入，数字从0开始
y = '大家好，我是{1},我今年{0}岁了'.format(20,'jerry')
print(y)

#{变量名}
z = '大家好，我是{name}，我今年{age}岁了,我来自{addr}'.format(age=18,name='jack',addr='瑞金')
print(z)

#混合使用{数字} {变量}                                  这里变量要写在数字之后
a = '大家好，我是{name}，我今年{1}岁了,我来自{0}'.format('瑞金',18,name='Tom')
print(a)
 
#{}什么都不写    (数字)不能混合使用

d = ['zhangsan',18,'上海',180]
#b = '大家好，我是{},我今年{}岁了，我来自{},身高{}cm'.format(d[0],d[1],d[2],d[3])
b = '大家好，我是{},我今年{}岁了，我来自{},身高{}cm'.format(*d)# *d可以直接对列表进行拆分
print(b)

info={'name':'cheis','age':23,'addr':'北京','height':190}
c = '大家好，我是{name},我来自{addr},身高{height}cm,我今年{age}岁了'.format(**info)#这里用**
print(c)